import { defineStore } from 'pinia'

interface MenuItem {
  name: string
  path: string
  external?: boolean
  showInFooter?: boolean
}

interface Feature {
  title: string
  description: string
  icon: string
}

interface Organization {
  name: string
  description: string
  features: Feature[]
}

interface AppState {
  organization: Organization
  menu: MenuItem[]
  mobileMenuOpen: boolean
}

export const useAppStore = defineStore('app', {
  state: (): AppState => ({
    organization: {
      name: 'OpenCangjieCommunity',
      description: '开源仓颉是一个专注于仓颉编程语言的非官方社区。我们致力于分享经验、交流技术，帮助开发者更好地使用和理解仓颉语言。',
      features: [
        // {
        //   title: '技术交流',
        //   description: '提供技术讨论平台，分享使用经验，解答开发疑问',
        //   icon: '💡'
        // },
        {
          title: '学习资源',
          description: '整理文档教程，提供示例代码，降低学习门槛',
          icon: '📚'
        },
        {
          title: '实践分享',
          description: '分享项目经验，交流最佳实践，共同探讨技术方案',
          icon: '🤝'
        },
        {
          title: '工具支持',
          description: '收集开发工具，整理插件资源，提升开发效率',
          icon: '🛠️'
        }
      ]
    },
    menu: [
      {
        name: '首页',
        path: '/'
      },
      {
        name: 'Playground',
        path: 'https://playground.cj.zxilly.dev',
        external: true
      },
      // {
      //   name: '文档',
      //   path: '/docs',
      //   showInFooter: true
      // },
      {
        name: '教程',
        path: '/tutorials',
        showInFooter: true
      },
      {
        name: '项目',
        path: '/projects',
        showInFooter: true
      },
      {
        name: '关于我们',
        path: '/about'
      },
      {
        name: 'GitCode',
        path: 'https://gitcode.com/OpenCangjieCommunity',
        external: true
      }
    ],
    mobileMenuOpen: false
  }),
  actions: {
    toggleMobileMenu() {
      this.mobileMenuOpen = !this.mobileMenuOpen
    },
    closeMobileMenu() {
      this.mobileMenuOpen = false
    }
  }
})